#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>

void SetBlock(int fd)
{
    //将文件描述符的属性取出来，是一个位图
    int f1=fcntl64(fd,F_GETFL);
    if(f1<0)
    {
        perror("fcntl");
        return ;
    }
    //将取出来的属性变为非阻塞再设置进去
    fcntl(fd,F_SETFL,O_NONBLOCK);
}

int main()
{
    SetBlock(0);
    while(1)
    {
        char buf[1024]={0};
        ssize_t read_size=read(0,buf,sizeof(buf)-1);
        if(read_size<0)
        {
            perror("read");
            sleep(1);
            continue;
        }
        printf("%s\n",buf);
    }
    return 0;
}